package cn.piesat.scanning.dao;

import cn.piesat.scanning.dto.DbDmsDatafileNearlineStorageDTO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;

import java.util.List;

/**
 * 近线数据信息 持久层
 * @author xhl
 */
public interface DbDmsDatafileNearlineStorageDAO extends JpaRepository<DbDmsDatafileNearlineStorageDTO,String> {

    @Query(nativeQuery = true, value = "select * from db_dms_datafile_nearline_storage" +
            " where FILE_DATE <= :date and FILE_NAME regexp :fileNamePattern")
    List<DbDmsDatafileNearlineStorageDTO> regexAndDateRangeFind(String date, String fileNamePattern);

    /**
     * 根据文件名称集合查询在近线表中的源数据信息
     * @param fileNameList 文件名称集合
     * @return
     */
    List<DbDmsDatafileNearlineStorageDTO> findAllByTaskRIdIsNullAndFileNameIn(List<String> fileNameList);


    /**
     * 根据文件名称集合查询在近线表中的结果数据信息
     * @param fileNameList 文件名称结合
     * @return
     */
    List<DbDmsDatafileNearlineStorageDTO> findAllByTaskRIdIsNotNullAndFileNameIn(List<String> fileNameList);

    List<DbDmsDatafileNearlineStorageDTO> findAllByDataStatusAndFileDateBeforeAndDataLevelIn(Integer dataStatus,
                                                                                             String dateTime,
                                                                                             List<String> levelList);

    List<DbDmsDatafileNearlineStorageDTO> findAllByDataStatusAndFileDateAfterAndDataLevelIn(Integer dataStatus,
                                                                                             String dateTime,
                                                                                             List<String> levelList);
}
